// 高阶函数-----作为返回值，就是函数生成一个函数
/*
*高阶函数语法展示
*/
function makeFn() {
    let msg = 'Hello msg'
    return function () {
        console.log(msg)
    }
}
//调用方式一
const fn = makeFn()
fn()
// 调用方式二
makeFn()()

//once: 只让函数只执行一次，场景：在支付的时候，一个订单，用户点击多次按钮，只让用户执行一次
function once (fn) {
    let done = false //fn没有执行
    return function () {
        if(!done) {
            done = true
            fn.apply(this,arguments)
        }
    }
}
//测试
let pay = once(function (money) {
    console.log(`支付: ${money} RMB`)
})
pay(5)
pay(5)
pay(5)